<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <title>桥接模式</title>
</head>
<body>
    <h2>桥接模式</h2>
    <p>优点：弱化了代码之间的耦合，将抽象和其实现分离，便于二者独立变化、让API更加健壮，有利于分层，提高组件的模块化程度；提高可拓性。</p>
    <p>缺点：增加开发成本，在性能方面可能会有所降低</p>
    <p>2.3弊：增加开发成本，在性能方面可能会有所降低。</p>
    <script type="text/javascript">
        /**
         * 桥接抽象方法
         * @param arr
         * @param fun
         * @return {[]}
         */
        function forEach(arr,fun) {
            const array = []
            for (let i = 0; i < arr.length; i++) {
                array.push(fun.call(this,i,arr[i],arr))
            }
            return array
        }

        /***/
        function multiply() {
            const arr = [1,2,3,4,5,6,7,8,9]
            /**
             * 接口实现方法
             * @type {*[]}
             */
            const result = forEach(arr,(index,item,arr) => {
                return item * item
            })
            console.log("result:",result)
        }

        multiply()


    </script>
</body>
</html>
